package cn.iocoder.yudao.module.mqtt.framework.mqtt;

import cn.iocoder.yudao.module.mqtt.constant.SystemConstants;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;

/**
 * 简单MQTT配置类
 * 用于在没有数据库的情况下提供基本功能
 *
 * @author 芋道源码
 */
@Slf4j
@Configuration
@ConditionalOnProperty(name = "spring.datasource.dynamic.primary", havingValue = "master", matchIfMissing = false)
@Order(2)
public class SimpleMqttConfiguration implements ApplicationRunner {

    @Override
    public void run(ApplicationArguments args) throws Exception {
        log.info("MQTT模块启动完成，等待数据库连接...");
        // 这里可以添加一些基本的MQTT功能初始化
        // 比如创建默认的MQTT客户端等
        try {
            // 延迟一段时间，确保其他组件都已启动
            Thread.sleep(1000);
            SystemConstants.MQTT_INIT_SUCCESS = true;
            log.info("MQTT模块初始化完成" + true);
        } catch (Exception e) {
            log.error("MQTT模块初始化失败", e);
        }
    }
} 